package com.sh.data.engine.domain.normalization.model.model.domain;

import lombok.Data;

import java.util.ArrayList;
import java.util.List;

/**
 * @author : fuchen
 * @date : 2022/1/7 11:49
 */
@Data
//@ApiModel
public class ModelDimDomain {

    //    @ApiModelProperty(value = "指标id")
    private Long indexlibId;

    //    @Min(value = 1)
//    @ApiModelProperty(value = "表id")
    private Long tableId;

    //    @Size(max = 255)
//    @ApiModelProperty(value = "字段名称")
    private String fieldName;

    //    @Size(max = 255)
//    @ApiModelProperty(value = "字段类型")
    private String fieldType;

    //    @Size(max = 255)
//    @ApiModelProperty(value = "字段描述")
    private String fieldComment;

    /**
     * 字段别名
     */
//    @Size(max = 255)
//    @ApiModelProperty(value = "字段别名")
    private String alias;

    /**
     * 修改后的字段注释
     */
//    @Size(max = 255)
//    @ApiModelProperty(value = "修改后的字段注释")
    private String aliasComment;

    //    @ApiModelProperty(value = "指标字段名")
    private String indexlibFieldName;

    //    @ApiModelProperty(value = "指标别名")
    private String indexlibAlias;

    //    @ApiModelProperty(value = "关联表集合")
    private List<RelationTableDomain> relationTables = new ArrayList<>();

    //    @ApiModelProperty(value = "dim表信息")
    private DimTableDomain dimTable;

    /**
     * 时间粒度，针对时间类型的字段，day，week，month，quarter，year
     */
//    @ApiModelProperty(value = "时间粒度，针对时间类型的字段，day，week，month，quarter，year")
    private String timeUnit;

    //    @ApiModelProperty(value = "维度表字段拉平后，原本所属的指标id")
    private Long relIndexlibId;

    //    @ApiModelProperty(value = "维度表字段拉平后，原本所属的指标字段名")
    private String relFieldName;

    //    @ApiModelProperty(value = "顺序")
    private Integer idx;

    /**
     * 在select时，是否包含该维度字段
     */
    private boolean checked = true;

    /**
     * 维度类型，目前只有自然日汇总的原子指标自然日时间字段类型是natural_date，其余都是空的
     */
    private String type;
}
